/**
 * 表单分页信息
 *
 * @export
 * @interface FuncFormPage
 */
export interface FuncFormPage {
  getPSDEFormDetails: Array<FuncGroupPanel | FuncFormItem>    // 表单项列表
  getPSLayout: PSLayout   // 子项布局信息
}

/**
 * 分组面板信息
 *
 * @export
 * @interface FuncGroupPanel
 */
export interface FuncGroupPanel {
  codeName: string  // 代码标识 
  caption: string   // 标题
  detailType: string    // 表单项类型
  getPSDEFormDetails: Array<FuncGroupPanel | FuncFormItem>    // 表单项列表
  getPSLayout: PSLayout   // 子项布局信息
  getPSLayoutPos: PSLayoutPos   // 布局信息
  showCaption: boolean    // 是否展示标题
}

/**
 * 表单项信息
 *
 * @export
 * @interface FuncFormItem
 */
export interface FuncFormItem {
  caption: string   // 标题
  labelWidth: number    // label宽度
  detailType: string    // 表单项类型
  getPSLayoutPos: PSLayoutPos   // 布局信息
  userTag?: string    // 功能是否支持（'1' 为支持，undefined为未支持）
  getPSEditor: {
    getPSAppCodeList?: {
      path: string    // 代码表路径
    }
  }
}

/**
 * 多选框信息
 *
 * @export
 * @interface FormCheckBox
 */
export interface FormCheckBox {
  text: string    // 显示文本
  disableSelect: string // 功能是否支持
}

/**
 * 子项布局信息
 *
 * @export
 * @interface PSLayout
 */
export interface PSLayout {
  childColLG: number  // 占据列数
  layout: string  // 布局类型
}

/**
 * 布局信息
 *
 * @export
 * @interface PSLayoutPos
 */
export interface PSLayoutPos {
  colLG: number   // 占据列数
  layout: string  // 布局类型
}

/**
 * 代码表路径映射
 *
 * @export
 * @interface CodeListMap
 */
export interface CodeListMap {
  [key: string]: CodeList
}

/**
 * 代码表信息
 *
 * @export
 * @interface CodeList
 */
export interface CodeList {
  getPSCodeItems: Array<FormCheckBox> // 代码表子项列表
}